/* Copyright (c) 2015 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

//
//  GTLMirrorContact.h
//

// ----------------------------------------------------------------------------
// NOTE: This file is generated from Google APIs Discovery Service.
// Service:
//   Google Mirror API (mirror/v1)
// Description:
//   API for interacting with Glass users via the timeline.
// Documentation:
//   https://developers.google.com/glass
// Classes:
//   GTLMirrorContact (0 custom class methods, 12 custom properties)

#if GTL_BUILT_AS_FRAMEWORK
  #import "GTL/GTLObject.h"
#else
  #import "GTLObject.h"
#endif

@class GTLMirrorCommand;

// ----------------------------------------------------------------------------
//
//   GTLMirrorContact
//

// A person or group that can be used as a creator or a contact.

@interface GTLMirrorContact : GTLObject

// A list of voice menu commands that a contact can handle. Glass shows up to
// three contacts for each voice menu command. If there are more than that, the
// three contacts with the highest priority are shown for that particular
// command.
@property (nonatomic, retain) NSArray *acceptCommands;  // of GTLMirrorCommand

// A list of MIME types that a contact supports. The contact will be shown to
// the user if any of its acceptTypes matches any of the types of the
// attachments on the item. If no acceptTypes are given, the contact will be
// shown for all items.
@property (nonatomic, retain) NSArray *acceptTypes;  // of NSString

// The name to display for this contact.
@property (nonatomic, copy) NSString *displayName;

// An ID for this contact. This is generated by the application and is treated
// as an opaque token.
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
@property (nonatomic, copy) NSString *identifier;

// Set of image URLs to display for a contact. Most contacts will have a single
// image, but a "group" contact may include up to 8 image URLs and they will be
// resized and cropped into a mosaic on the client.
@property (nonatomic, retain) NSArray *imageUrls;  // of NSString

// The type of resource. This is always mirror#contact.
@property (nonatomic, copy) NSString *kind;

// Primary phone number for the contact. This can be a fully-qualified number,
// with country calling code and area code, or a local number.
@property (nonatomic, copy) NSString *phoneNumber;

// Priority for the contact to determine ordering in a list of contacts.
// Contacts with higher priorities will be shown before ones with lower
// priorities.
@property (nonatomic, retain) NSNumber *priority;  // unsignedIntValue

// A list of sharing features that a contact can handle. Allowed values are:
// - ADD_CAPTION
@property (nonatomic, retain) NSArray *sharingFeatures;  // of NSString

// The ID of the application that created this contact. This is populated by the
// API
@property (nonatomic, copy) NSString *source;

// Name of this contact as it should be pronounced. If this contact's name must
// be spoken as part of a voice disambiguation menu, this name is used as the
// expected pronunciation. This is useful for contact names with unpronounceable
// characters or whose display spelling is otherwise not phonetic.
@property (nonatomic, copy) NSString *speakableName;

// The type for this contact. This is used for sorting in UIs. Allowed values
// are:
// - INDIVIDUAL - Represents a single person. This is the default.
// - GROUP - Represents more than a single person.
@property (nonatomic, copy) NSString *type;

@end
